#ifndef _NE_TINY_XML_H_
#define _NE_TINY_XML_H_

#include <tinyxml/tinyxml.h>

namespace ne
{
    // An attribute is a name-value pair
    typedef TiXmlAttribute XMLAttribute;

    // TiXmlBase is a base class for every class in TinyXml
    typedef TiXmlBase XMLBase;

    // An XML comment
    typedef TiXmlComment XMLComment;

    // In correct XML the declaration is the first entry in the file
    typedef TiXmlDeclaration XMLDeclaration;

    // Always the top level node
    typedef TiXmlDocument XMLDocument;

    // The element is a container class
    typedef TiXmlElement XMLElement;

    // A TiXmlHandle is a class that wraps a node pointer with null checks
    // this is an incredibly useful thing
    typedef TiXmlHandle XMLHandle;

    // The parent class for everything in the Document Object Model
    typedef TiXmlNode XMLNode;

    // Print to memory functionality
    typedef TiXmlPrinter XMLPrinter;

    // XML text
    typedef TiXmlText XMLText;

    // Any tag that TinyXml doesn't recognize is saved as an unknown
    typedef TiXmlUnknown XMLUnknown;

    // Implements the interface to the "Visitor pattern" (see the Accept() method)
    typedef TiXmlVisitor XMLVisitor;
}

#endif
